const express = require('express')
const cors = require('cors')
const bodyParser = require('body-parser')
const path = require('path')

const app = express()
const PORT = process.env.PORT || 3000

// 中间件
app.use(cors())
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))

// 静态文件服务
app.use('/static', express.static(path.join(__dirname, '../static')))

// API 路由
const apiRoutes = require('./routes/api')
app.use('/api', apiRoutes)

// 健康检查
app.get('/health', (req, res) => {
  res.json({
    status: 'ok',
    timestamp: new Date().toISOString(),
    uptime: process.uptime()
  })
})

// 错误处理中间件
app.use((err, req, res, next) => {
  console.error(err.stack)
  res.status(500).json({
    error: '服务器内部错误',
    message: process.env.NODE_ENV === 'development' ? err.message : '服务器繁忙，请稍后重试'
  })
})

// 404 处理
app.use((req, res) => {
  res.status(404).json({
    error: '接口不存在',
    message: `无法找到 ${req.method} ${req.path}`
  })
})

// 启动服务器
app.listen(PORT, () => {
  console.log(`🚀 服务器启动成功！`)
  console.log(`📍 本地访问: http://localhost:${PORT}`)
  console.log(`📊 健康检查: http://localhost:${PORT}/health`)
  console.log(`🔌 API文档: http://localhost:${PORT}/api`)
})
